#region (c) 2014 THN Solutions LLC. - All rights reserved
/*
Simplified BSD License (BSD)
THN HTTP Stack Library
Copyright (c) 2014, THN Solutions LLC. ( www.ThnSolutions.com )
Author: Nguyễn, M. Hải                 ( www.Minh-Hai.com     )
All rights reserved.

Redistribution and use in source and binary forms, with or without modification,
are permitted provided that the following conditions are met:

    * Redistributions of source code must retain the above copyright notice, this 
      list of conditions and the following disclaimer.

    * Redistributions in binary form must reproduce the above copyright notice, 
      this list of conditions and the following disclaimer in the documentation 
      and/or other materials provided with the distribution.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 
IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 
BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 
POSSIBILITY OF SUCH DAMAGE.
*/
#endregion

#region Record of Change
//             							CHANGE HISTORY
// -------------------------------------------------------------------------------------
// |   DATE    | DEVELOPER  | DESCRIPTION                                              |
// -------------------------------------------------------------------------------------
// | 04-Nov-11 | HaiNM      | First creation.                                          |
// -------------------------------------------------------------------------------------
//
#endregion

#region Record of Audit
//             							REVIEW HISTORY
// -------------------------------------------------------------------------------------
// |   DATE    | REVIEWER   | NOTES                                                    |
// -------------------------------------------------------------------------------------
// -------------------------------------------------------------------------------------
//
#endregion

#region Using directives
using System;

using Thn;
#endregion

namespace Thn.Net.Http
{
    /// <summary>
    /// Common header names pre-defined for HTTP Request.
    /// See http://en.wikipedia.org/wiki/List_of_HTTP_header_fields for further information.
    /// </summary>
#if DEBUG || TESTING
    public
#else
    public
#endif
 class HttpRequestHeaderNames
    {
        /// <summary>
        /// Content-Types that are acceptable.
        /// <para>Example: Accept: text/plain</para>
        /// </summary>
        public static string Accept = "Accept";
        /// <summary>
        /// Character sets that are acceptable.
        /// <para>Example: Accept-Charset: utf-8</para>
        /// </summary>
        public static string Accept_Charset = "Accept-Charset";
        /// <summary>
        /// Acceptable encodings.
        /// <para>Example: Accept-Encoding: <compress | gzip | deflate | identity></para>
        /// </summary>
        public static string Accept_Encoding = "Accept-Encoding";
        /// <summary>
        /// Acceptable languages for response.
        /// <para>Example: Accept-Language: en-US</para>
        /// </summary>
        public static string Accept_Language = "Accept-Language";
        /// <summary>
        /// Authentication credentials for HTTP authentication.
        /// <para>Example: Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==</para>
        /// </summary>
        public static string Authorization = "Authorization";
        /// <summary>
        /// Used to specify directives that MUST be obeyed by all caching mechanisms along the request/response chain.
        /// <para>Example: Cache-Control: no-cache</para>
        /// </summary>
        public static string Cache_Control = "Cache-Control";
        /// <summary>
        /// What type of connection the user-agent would prefer.
        /// <para>Example: Connection: close</para>
        /// </summary>
        public static string Connection = "Connection";
        /// <summary>
        /// An HTTP cookie previously sent by the server with Set-Cookie.
        /// <para>Example: Cookie: $Version=1; Skin=new;</para>
        /// </summary>
        public static string Cookie = "Cookie";
        /// <summary>
        /// The length of the request body in octets (8-bit bytes).
        /// <para>Example: Content-Length: 348</para>
        /// </summary>
        public static string Content_Length = "Content-Length";
        /// <summary>
        /// The mime type of the body of the request (used with POST and PUT requests).
        /// <para>Example: Content-Type: application/x-www-form-urlencoded</para>
        /// </summary>
        public static string Content_Type = "Content-Type";
        /// <summary>
        /// The date and time that the message was sent.
        /// <para>Example: Date: Tue, 15 Nov 1994 08:12:31 GMT</para>
        /// </summary>
        public static string Date = "Date";
        /// <summary>
        /// Indicates that particular server behaviors are required by the client.
        /// <para>Example: Expect: 100-continue</para>
        /// </summary>
        public static string Expect = "Expect";
        /// <summary>
        /// The email address of the user making the request.
        /// <para>Example: From: user@example.com</para>
        /// </summary>
        public static string From = "From";
        /// <summary>
        /// The domain name of the server (for virtual hosting), mandatory since HTTP/1.1.
        /// <para>Example: Host: en.wikipedia.org</para>
        /// </summary>
        public static string Host = "Host";
        /// <summary>
        /// Only perform the action if the client supplied entity matches the same entity on the server. This is mainly for methods like PUT to only update a resource if it has not been modified since the user last updated it.
        /// <para>Example: If-Match: "737060cd8c284d8af7ad3082f209582d"</para>
        /// </summary>
        public static string If_Match = "If-Match";
        /// <summary>
        /// Allows a 304 Not Modified to be returned if content is unchanged.
        /// <para>Example: If-Modified-Since: Sat, 29 Oct 1994 19:43:31 GMT</para>
        /// </summary>
        public static string If_Modified_Since = "If-Modified-Since";
        /// <summary>
        /// Allows a 304 Not Modified to be returned if content is unchanged, see HTTP ETag.
        /// <para>Example: If-None-Match: "737060cd8c284d8af7ad3082f209582d"</para>
        /// </summary>
        public static string If_None_Match = "If-None-Match";
        /// <summary>
        /// If the entity is unchanged, send me the part(s) that I am missing; otherwise, send me the entire new entity.
        /// <para>Example: If-Range: "737060cd8c284d8af7ad3082f209582d"</para>
        /// </summary>
        public static string If_Range = "If-Range";
        /// <summary>
        /// Only send the response if the entity has not been modified since a specific time.
        /// <para>Example: If-Unmodified-Since: Sat, 29 Oct 1994 19:43:31 GMT</para>
        /// </summary>
        public static string If_Unmodified_Since = "If-Unmodified-Since";
        /// <summary>
        /// Limit the number of times the message can be forwarded through proxies or gateways.
        /// <para>Example: Max-Forwards: 10</para>
        /// </summary>
        public static string Max_Forwards = "Max-Forwards";
        /// <summary>
        /// Implementation-specific headers that may have various effects anywhere along the request-response chain.
        /// <para>Example: Pragma: no-cache</para>
        /// </summary>
        public static string Pragma = "Pragma";
        /// <summary>
        /// Authorization credentials for connecting to a proxy.
        /// <para>Example: Proxy-Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==</para>
        /// </summary>
        public static string Proxy_Authorization = "Proxy-Authorization";
        /// <summary>
        /// Request only part of an entity. Bytes are numbered from 0.
        /// <para>Example: Range: bytes=500-999</para>
        /// </summary>
        public static string Range = "Range";
        /// <summary>
        /// This is the address of the previous web page from which a link to the currently requested page was followed.
        /// <para>Example: Referer: http://en.wikipedia.org/wiki/Main_Page</para>
        /// </summary>
        public static string Referer = "Referer";
        /// <summary>
        /// The transfer encodings the user agent is willing to accept: the same values as for the response header Transfer-Encoding can be used, plus the "trailers" value (related to the "chunked" transfer method) to notify the server it accepts to receive additional headers (the trailers) after the last, zero-sized, chunk.
        /// <para>Example: TE: trailers, deflate</para>
        /// </summary>
        public static string TE = "TE";
        /// <summary>
        /// The user agent string of the user agent.
        /// <para>Example: User-Agent: Mozilla/5.0 (Linux; X11)</para>
        /// </summary>
        public static string User_Agent = "User-Agent";
        /// <summary>
        /// Informs the server of proxies through which the request was sent.
        /// <para>Example: Via: 1.0 fred, 1.1 nowhere.com (Apache/1.1)</para>
        /// </summary>
        public static string Via = "Via";
    }
}
